public interface IChatService
{
    // 原有方法
    Task<MessageResult> SendTextMessageAsync(string senderId, string receiverId, string content, bool isGroupChat = false);
    Task<MessageResult> SendImageMessageAsync(string senderId, string receiverId, byte[] imageData, bool isGroupChat = false);
    Task<MessageResult> SendVoiceMessageAsync(string senderId, string receiverId, byte[] audioData, int duration, bool isGroupChat = false);
    Task<MessageResult> SendLocationMessageAsync(string senderId, string receiverId, double latitude, double longitude, string address, bool isGroupChat = false);
    Task<IEnumerable<ChatMessage>> GetChatHistoryAsync(string userId, string contactId, bool isGroupChat, int skip, int take);
    Task<GroupChatResult> CreateGroupChatAsync(string creatorId, string groupName, List<string> memberIds);
    // 新增方法
    Task<MessageResult> SendEmojiMessageAsync(string senderId, string receiverId, string emojiId, bool isGroupChat = false);
    Task<MessageResult> SendVoiceMessageAsync(string senderId, string receiverId, byte[] audioData, AudioFormat format, bool isGroupChat = false);
}